package task

import (
	"log"
	"os"

	"github.com/robfig/cron/v3"
)

type Status struct {
	Time   string `json:"time"`
	Status string `json:"status"`
}

var TaskStatus Status

var c *cron.Cron

func Init() {
	c = cron.New(cron.WithSeconds(), cron.WithChain(cron.SkipIfStillRunning(cron.VerbosePrintfLogger(log.New(os.Stdout, "cron: ", log.LstdFlags)))))

}

// Start 开启定时任务
func Start() {

	//每天凌晨6点执行 同步需要发放的用户记录
	_, err := c.AddFunc("0 0 6 * * *", SyncResultsSS)
	if err != nil {
		log.Println("定时任务同步需要发放的用户记录启动失败：", err)
	} else {
		log.Println("定时任务同步需要发放的用户记录启动成功")
	}

	////每天凌晨11点执行 发放红包
	//_, err = c.AddFunc("0 0 11 * * *", AwardBonusSS)
	//if err != nil {
	//	log.Println("定时任务发红包启动失败：", err)
	//} else {
	//	log.Println("定时任务发红包启动成功")
	//}

	// 每月25号20点执行 清理数据
	_, err = c.AddFunc("0 0 20 25 * *", ClearData)
	if err != nil {
		log.Println("定时任务清理数据启动失败：", err)
	} else {
		log.Println("定时任务清理数据启动成功")
	}

	c.Start()

}

// Stop 关闭定时任务
func Stop() {
	c.Stop()
	TaskStatus.Status = "stop"
	log.Println("定时任务已关闭")
}
